using System;
using Volo.Abp;
using Volo.Abp.Domain.Entities.Auditing;
using Volo.Abp.MultiTenancy;
using System.ComponentModel.DataAnnotations;

namespace Business.Models
{
    /// <summary>
    /// 库存
    /// </summary>
    public class InventoryQuantity : AuditedAggregateRoot<Guid>, ISoftDelete, IMultiTenant
    {
        public Guid? TenantId { get; set; }

        /// <summary>
        ///              商品ID
        /// </summary>
        [Required]
        public string ProductID { get; set; }

        /// <summary>
        ///              库存单位
        /// </summary>
        [Required]
        public string Unit { get; set; }

        /// <summary>
        ///              可用库存
        /// </summary>
        [Required]
        public string AvailableInventory { get; set; }

        /// <summary>
        ///             最大库存数量
        /// </summary>
        [Required]
        public string MaxStock { get; set; }

        /// <summary>
        ///              销售在途
        /// </summary>
        [Required]
        public string SellingInTransit { get; set; }

        /// <summary>
        ///              库位ID
        /// </summary>
        [Required]
        public string StorageLocationId { get; set; }

        /// <summary>
        ///              在途汇总
        /// </summary>
        [Required]
        public string TotalInTransit { get; set; }

        /// <summary>
        ///              实际库存
        /// </summary>
        [Required]
        public string ActualInventory { get; set; }

        /// <summary>
        ///              调拨在途
        /// </summary>
        [Required]
        public string TransferringInTransit { get; set; }

        /// <summary>
        ///              最后更新库存时间
        /// </summary>
        [Required]
        public string LastUpdated { get; set; }

        /// <summary>
        ///               采购在途
        /// </summary>
        [Required]
        public string PurchasingInTransit { get; set; }

        /// <summary>
        ///               冻结库存
        /// </summary>
        [Required]
        public string FrozenInventory { get; set; }

        /// <summary>
        ///               区域ID
        /// </summary>
        [Required]
        public string AreaId { get; set; }

        /// <summary>
        ///               库区ID
        /// </summary>
        [Required]
        public string WarehouseAreaId { get; set; }

        /// <summary>
        ///               加工单在途
        /// </summary> 
        [Required]
        public string ProcessingOrderInTransit { get; set; }

        /// <summary>
        ///                仓库ID
        /// </summary>
        [Required]
        public string WarehouseID { get; set; }

        /// <summary>
        ///                 其他在途
        /// </summary>
        [Required]
        public string OtherInTransit { get; set; }

        /// <summary>  
        ///                锁定库存
        /// </summary>
        [Required]
        public string LockedInventory { get; set; }


        public bool IsDeleted { get; set; }
    }
}